core: Reuse more libgsystem API in utils
authorColin Walters <walters@verbum.org>
Sat, 5 Jan 2013 00:46:02 +0000 (19:46 -0500)
committerColin Walters <walters@verbum.org>
Sat, 5 Jan 2013 00:46:02 +0000 (19:46 -0500)
More code drain to libgsystem.

src/libgsystem
src/libotutil/ot-unix-utils.c
src/libotutil/ot-unix-utils.h
src/libotutil/ot-variant-utils.c

index ce441a7a7bd987265588674a11d62965e81bdf94..a2519612547354033f0d513a174f336896776fa8 160000 (submodule)
@@ -1 +1 @@
-Subproject commit ce441a7a7bd987265588674a11d62965e81bdf94
+Subproject commit a2519612547354033f0d513a174f336896776fa8
index d4793019e1ca48b37b91f22842f0c3620bda038a..032b497ae45eab770c5c459c8e2a030944d33d42 100644 (file)
@@ -189,49 +189,3 @@ ot_util_fatal_gerror (GError *error)
   g_assert (error != NULL);
   ot_util_fatal_literal (error->message);
 }
-
-/**
- * ot_unix_close:
- *
- * Like close(), but uses #GError, and handles EINTR.
- */
-gboolean
-ot_unix_close (int fd, GError **error)
-{
-  int result;
-  do
-    result = close (fd);
-  while (G_UNLIKELY (result != 0 && errno == EINTR));
-  if (result != 0)
-    {
-      ot_util_set_error_from_errno (error, errno);
-      return FALSE;
-    }
-  return TRUE;
-}
-
-/**
- * ot_unix_open_noatime:
- *
- * Open a file for reading, using O_NOATIME if possible.
- */
-gboolean
-ot_unix_open_noatime (const char    *path,
-                      int           *out_fd,
-                      GError       **error)
-{
-  int fd;
-
-#ifdef O_NOATIME
-  fd = g_open (path, O_RDONLY | O_NOATIME | O_CLOEXEC, 0);
-  if (fd == -1 && errno == EPERM)
-#endif
-    fd = g_open (path, O_RDONLY | O_CLOEXEC, 0);
-  if (fd == -1)
-    {
-      ot_util_set_error_from_errno (error, errno);
-      return FALSE;
-    }
-  *out_fd = fd;
-  return TRUE;
-}
index 9a8c3ac6bd8cb797977355638b9ddee82b5217ba..e0546a372502afd4dd8481f78cab6b4ab23f89dd 100644 (file)
@@ -55,8 +55,6 @@ gboolean ot_unix_open (const char *path,
                        int        *out_fd,
                        GError    **error);
 
-gboolean ot_unix_close (int fd, GError **error);
-
 gboolean ot_unix_open_noatime (const char *path, int *out_fd, GError **error);
 
 G_END_DECLS
index caa39ea6113a64b68927289ccfb2adb012101de4..31d01b522f860929c0ad7266a4c80572034b79fe 100644 (file)
@@ -109,19 +109,12 @@ ot_util_variant_map (GFile              *src,
                      GError            **error)
 {
   gboolean ret = FALSE;
-  const char *path = NULL;
   ot_lvariant GVariant *ret_variant = NULL;
   GMappedFile *mfile = NULL;
-  int fd;
 
-  path = gs_file_get_path_cached (src);
-  if (!ot_unix_open_noatime (path, &fd, error))
-    goto out;
-  mfile = g_mapped_file_new_from_fd (fd, FALSE, error);
+  mfile = gs_file_map_noatime (src, NULL, error);
   if (!mfile)
     goto out;
-  if (!ot_unix_close (fd, error))
-    goto out;
 
   ret_variant = g_variant_new_from_data (type,
                                          g_mapped_file_get_contents (mfile),